Reconfigurable integrated circuits (ICs), such as field programmable gate arrays (FPGAs), can reconfigure circuits to thereby implement arbitrary logic functions. A reconfigurable IC includes logic blocks and wiring portions. The logic blocks respectively implement arbitrary truth tables, and the wiring portions change the interconnection among the logic blocks. For example, look-up tables (LUTs) are used as elements for respectively configuring logic blocks, and switches are provided in the wiring portions. Data of the LUTs and data for switching connection/non-connection of the switches are stored in memories. The user can implement arbitrary logic-functions by appropriately writing information into the memories.
For example, in an LUT for implementing an N-input 1-output logic-circuit (“N” is a positive integer), 2N memories are provided. To realize the logical operation represented by a given truth table, data corresponding to outputs of the given truth table are written into the 2N memories. Then, the LUT outputs an appropriate signal by selecting one of the 2N memories according to inputs thereto. Here, as the number of inputs to the LUT increases, delay in output thereof increases.